using Engine;
using Game;

namespace SCIENEW.VoltNet {
    /// <summary>
    /// 用电器或者发电机
    /// </summary>
    public interface IVoltDevice {
        /// <summary>
        /// 获取电线可以连接在哪
        /// </summary>
        /// <returns></returns>
        HashSet<int> GetFaceMask(int value);

        /// <summary>
        /// 获取电力系统元件
        /// </summary>
        /// <param name="subsystemVoltNet"></param>
        /// <param name="subsystemTerrain"></param>
        /// <param name="position"></param>
        /// <returns></returns>
        VoltElement? GetVoltElement(SubsystemVoltNet subsystemVoltNet, SubsystemTerrain subsystemTerrain, Point3 position, int blockValue);

        /// <summary>
        /// 获取标准额定功率等级
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        float GetStandardPL(int value, CellFace cellFace);

        /// <summary>
        /// 获取标准额定电压等级
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        float GetStandardUL(int value, CellFace cellFace);
    }
}